Modern communication networks, such as for example, the Internet, are typically packet switched networks that transmit information between a source and a destination in streams of packets. A packet typically has a data payload section that comprises a portion of the information transmitted between the source and destination in a given communication session and a “housekeeping” part. The housekeeping part of a packet generally comprises management and control data used in transmitting the packet from its source to its intended destination and typically comprises a header and a tail. The header usually comprises an address for the packet destination as well as an address of the source. The addresses are used to route the packet from the source to its destination via a series of network nodes and during propagation to its destination, a packet's header is repeatedly inspected to determine how to configure the packet's route via the network nodes. Inspecting a packet's header is often referred to as “shallow inspection”. The tail of a packet, as its name implies, marks the end of the packet.
However, providing subscribers to a communication network with an appropriate quality of service (QoS) for data transmission is not limited to providing and implementing routing techniques for stewarding data packets from sources to destination. A communication network has limited bandwidth, i.e. capacity, for transmitting data and providing satisfactory network QoS, generally requires providing, allocating and/or managing network bandwidth. Hereinafter providing, allocating and/or managing network bandwidth is generically referred to as “managing” network bandwidth and includes, by way of example among other bandwidth management functions, traffic shaping and/or policing.
In many conventional networks, deep packet inspection (DPI) techniques are used to provide bandwidth management. In using DPI, apparatus, hereinafter referred to as a “DPI allocator”, comprising a suite of bandwidth management functions is connected in series with a communication channel, hereinafter referred to as a “bandwidth monitored (BWM) channel”, of the network, so that data packets that are transmitted through the BWM channel pass through the DPI allocator. At least one of the bandwidth management functions operates to inspect packets that enter the DPI allocator. However, the DPI allocator inspects not only the headers of packets (shallow packet inspection) but also inspects their data payloads (Deep Packet Inspection) to determine what is referred to as a layer 7 identification, hereinafter referred as an “ID”, which identifies a packet by its source and destination addresses and ports, its protocol and an application that it implements. (A packet's source and destination addresses and ports and its protocol are conventionally referred to as the packets layer 4 identification. The addition of information regarding an application that a packet implements to the identification of a packet “upgrades” the identification from a layer 4 identification to a layer 7 identification.) The DPI allocator allocates available network bandwidth on the BWM channel to the packets responsive to their IDs and algorithms and/or management functions that generally operate to allocate bandwidth to subscriber applications where it is most needed and/or to subscriber applications for which subscribers are willing to pay a premium.
By way of example, a DPI allocator may be configured to perform DPI on packets to determine packet IDs from their respective data payloads, and therefrom, which packets are from peer to peer (P2P) file sharing applications, gaming applications, or VoIP applications. Responsive to the IDs, the DPI allocator may allocate a preferred amount of available bandwidth to the VoIP applications and gaming applications, and smaller amounts of bandwidth to P2P file sharing applications.
By way of another example, a DPI allocator may be configured to profile packets propagating along the BWM channel that pass through the DPI allocator and determine whether they contain requests from a subscriber for down-loading multimedia data from a service provider. In the event that the packets contain such request, the DPI allocator manages BWM bandwidth responsive to various management rules and agreements to support forwarding the request packets to the service provider and packets transmitted by the service provider in response to the requests back to the subscriber.